# 3 june 2016

if(WIN32)
	set(_EXAMPLE_RESOURCES_RC resources.rc)
endif()

macro(_add_example _name)
	_add_exec(${_name} ${ARGN})
	# because Microsoft's toolchain is dumb
	if(MSVC)
		set_property(TARGET ${_name} APPEND_STRING PROPERTY
			LINK_FLAGS " /ENTRY:mainCRTStartup")
	endif()
endmacro()

_add_example(controlgallery
	controlgallery/main.c
	${_EXAMPLE_RESOURCES_RC}
)

_add_example(histogram
	histogram/main.c
	${_EXAMPLE_RESOURCES_RC}
)

_add_example(cpp-multithread
	cpp-multithread/main.cpp
	${_EXAMPLE_RESOURCES_RC}
)
if(NOT WIN32)
	target_link_libraries(cpp-multithread pthread)
endif()
if(APPLE)
	# since we use a deployment target of 10.8, the non-C++11-compliant libstdc++ is chosen by default; we need C++11
	# see issue #302 for more details
	target_compile_options(cpp-multithread PRIVATE --stdlib=libc++)
	target_link_libraries(cpp-multithread --stdlib=libc++)
endif()

_add_example(drawtext
	drawtext/main.c
	${_EXAMPLE_RESOURCES_RC}
)

_add_example(timer
        timer/main.c
        ${_EXAMPLE_RESOURCES_RC}
)

_add_example(datetime
	datetime/main.c
	${_EXAMPLE_RESOURCES_RC}
)

add_custom_target(examples
	DEPENDS
		controlgallery
		histogram
		cpp-multithread
		drawtext
		timer
		datetime)
